Spring Cloud | Note-8

Spring Cloud微服务 | Note(8)

@ 2018年8月10日 15:22:48

微服务的集中化配置

配置文件是为了迎合软件的个性化需求;

解决每个微服务的统一配置;

管理微服务的外部,中心化的配置中心;

为什么需要集中化配置

微服务数量多,配置多;

手工管理配置繁琐;

配置分类:

​ ·配置来源划分:源代码、文件、数据库连接、远程调用

​ ·配置环境划分:开发环境、测试环境、预发布环境、生产环境

​ ·配置集成阶段划分:编译、打包、运行

​ ·配置加载方式划分:启动加载、动态加载

配置中心的要求:

​ ·面向可配置的编码

​ ·隔离性

​ ·一致性

​ ·集中化配置

Spring Cloud Config

分布式外部化配置;Config Server;Config Client;


如何继集成Spring Cloud Config Server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// build.gradle
dependencies{
compile('org.springframework.cloud:spring-cloud-config-server')
}
// Application
@SpringBootApplication
@EnableDiscoveryClient
@EnableConfigServer
public class ConfigApplication{
public static void main(String[] args){
SpringApplication.run(ConfigApplication.class,args);
}
}
// application.properties
# config server
server.port=8888
spring.application.name=micro-weather-config-server
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
spring.cloud.config.server.git.uri=https:...
spring.cloud.config.server.git.search-paths=...

如何继集成Spring Cloud Config Client
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// build.gradle
dependencies{
compile('org.springframework.cloud:spring-cloud-config-client')
}
// Application
@SpringBootApplication
@EnableDiscoveryClient
public class ConfigClientApplication{
public static void main(String[] args){
SpringApplication.run(ConfigClientApplication.class,args);
}
}
// application.properties
# config server
spring.application.name=micro-weather-config-client
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://localhost:8888
实现微服务的集中化配置

配置中心的文件命名规则

1
2
3
4
5
/{application}/{profile}/[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

启动Eureka Server以及Config Server

作为Config Client可以在远端获取部署在git上的配置文件的内容


附录

@ 2018年8月10日 16:22:38